{% extends 'base.html' %}

{% block jquerycript %} 
	$(function() {		
		$("#estudiantes").tablesorter({sortList:[[0,0],[2,1]], widgets: ['zebra']});
		$("#options").tablesorter({sortList: [[0,0]], headers: { 3:{sorter: false}, 4:{sorter: false}}});
	}); 
	$(":input").change
	(
		function() 
		{
			var validar = $(":input").validator({lang: 'es'});
			if (!validar.data("validator").checkValidity())
			{
				this.focus();
			}
			else
			{
				numero = $(this).val();		
		    	numero = numero.toString().replace(",", ".");
		    	
		    	if ($(this).attr("nota") != null)	{numero = parseFloat(numero); numero = numero.toFixed(1);}
			   	else								{numero = parseInt(numero);}
		        
		        if (isNaN(numero))	
		    	{
		    		$(this).val("");
		    		validar.data("validator").checkValidity();
		    		this.focus();
		    	}
		    	else
		    	{	
			    	url = ($(this).attr("nota") != null)?"nota/":"falla/";
			    	idCalificacion = $(this).attr("idCalificacion");
			        idCorte = $(this).attr("idCorte");
			        
			        notaMin = "{{curso.notaMin}}";		
			        notaMax = "{{curso.notaMax}}";
		    		notaMin = notaMin.toString().replace(",", ".");		
		    		notaMax = notaMax.toString().replace(",", ".");
		    		
		    		if ($(this).attr("nota") && (notaMin > numero || notaMax < numero))	
			        {
			        	this.focus();
			    		alert("Por favor ingrese un valor entre {{curso.notaMin}} y {{curso.notaMax}}");
			        }
			        else
			        {
				        $.ajax
						(
							{
								type: "POST",
								url: url,
								data:	{
											idCalificacion: idCalificacion,
							        		idCorte: idCorte,
							        		valor: numero,
											csrfmiddlewaretoken : $('#csrf_token >div >input').attr("value")
										},
								success:function(datos) 
										{
											$("#notaDef_" + idCalificacion).html(datos[0]["fields"]["nota_definitiva"]);
							        		$("#totalFallas_" + idCalificacion).html(datos[0]["fields"]["fallas"]);    
										},
						        error: function(objeto, quepaso, otroobj)
						        	{
						           		alert(objeto.status+": "+objeto.statusText);
						        	},
								contentType: "application/json"
							}
						);
			        }
			        $(this).val(numero.toString());
				}
			}
		}
	);
	
	$.tools.validator.localize
	(
		"es", {'[required]' 	: 'Digite un valor adecuado'}
	);	
{% endblock %}

{% block ruta %}
	<li><a href="/">Inicio</a></li>
	<li>>></li>
	<li><a href="/academico/">Académico</a></li>
	<li>>></li>
	<li><a href="/academico/docente/notas/">Calificaciones</a></li>
	<li>>></li>
	<li>{{curso.nombre_curso}}</li>
{% endblock %}

{% block contenido %}
	<div id="content" class="with_sidebar">
		<h1> {{curso.nombre_curso}} </h1>	
		<div id="csrf_token">{% csrf_token %}</div>	
		<table id="estudiantes" class="tablesorter" width="100%">
			<thead>
				<tr>
					<th>Código</th>
					<th>Nombre</th>					
					{% for corte in cortes %} 
						<th>{{corte.porcentaje}}%</th>
						<th>F.</th>
					{% endfor %}	
					<th style="width: 20px;">F.T.</th>
					<th style="width: 20px;">P.F.</th>
					<th style="width: 20px;">Def.</th>					
				</tr>
			</thead>
			<tfoot>
				<tr>
					<th scope="row" colspan="{{ cantidadCortes }}">Total Estudiantes: {{ cantidad }}</th>
				</tr>
			</tfoot>
			<tbody>				
				{% for calificacion in calificaciones %}
					<tr class="{% cycle '' 'odd' %}">
						<th scope="row">{{ calificacion.codigo_estudiante }}</th>
						<td>{{ calificacion.nombre_estudiante }}</td>
						{% for corte in cortes %} 
							<td style="text-align:center">
								{% if corte.corte_actual %}
									<input type="text" name="nota_{{calificacion.id}}_{{corte.id}}" id="nota_{{calificacion.id}}_{{corte.id}}" 
									{% for llave, valor in calificacion.items %}
									    {% ifequal llave corte.id %}
									    	value="{{ valor.nota }}"
									    {% endifequal %}
									{% endfor %}
									nota="nota" idCalificacion="{{calificacion.id}}" idCorte="{{corte.id}}" required="required"/>
								{% else %}
									{% for llave, valor in calificacion.items %}
									    {% ifequal llave corte.id %}
									    	{{ valor.nota }}
									    {% endifequal %}
									{% endfor %}
								{% endif %}
							</td>
							<td style="text-align:center">
								{% if corte.corte_actual %}
									<input type="text" name="falla_{{calificacion.id}}_{{corte.id}}" id="falla_{{calificacion.id}}_{{corte.id}}"
									{% for llave, valor in calificacion.items %}
									    {% ifequal llave corte.id %}
									    	value="{{ valor.fallas }}"
									    {% endifequal %}
									{% endfor %}
									falla="falla" idCalificacion="{{calificacion.id}}" idCorte="{{corte.id}}" required="required"/>
								{% else %}
									{% for llave, valor in calificacion.items %}
									    {% ifequal llave corte.id %}
									    	{{ valor.fallas }}
									    {% endifequal %}
									{% endfor %}
								{% endif %}
							</td>
						{% endfor %}
						<td style="text-align:center;">
							<div id="totalFallas_{{calificacion.id}}">
								{% ifequal calificacion.fallas None %}
									0
								{% else %}
									{{ calificacion.fallas }}
								{% endifequal %}
							</div>
						</td>
						<td style="text-align:center;">
							<div id="perdioFallas{{calificacion.id}}">
								<INPUT NAME="perdioFallas{{calificacion.id}}" TYPE=CHECKBOX disabled="disabled" 
									{% ifequal calificacion.perdio_fallas 1 %}
										CHECKED
									{% endifequal %}
								>
							</div>
						</td>
						<th style="text-align:center;">
							<div id="notaDef_{{calificacion.id}}">
								{% ifequal calificacion.nota_definitiva None %}
									0
								{% else %}
									{{ calificacion.nota_definitiva }}
								{% endifequal %}
							</div>
						</th>
					</tr>					
				{% endfor %}
			</tbody>
		</table>
	</div>			
{% endblock %}